iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
DevOps

30天WebSphere入門及經驗分享系列 第 9

D09/WebSphere Log & Debug(一)

  • 分享至 

  • xImage
  •  

WebSphere之中,我們程式是運作在server1上面的,
而server1的log被放在這裡:
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1

在這個目錄下,有以下這些log檔:
https://ithelp.ithome.com.tw/upload/images/20220924/20128973Uxl6bnPXPv.png

其中
TextLog_XX.XX.XX_XX.XX.XX.log 紀錄的是server執行時輸出的log
native_stdout.log、native_stdout.log則是記錄jvm本身比較底層的log

通過查看TextLog.log,
https://ithelp.ithome.com.tw/upload/images/20220924/201289732mFMm1O5lb.png
我發現有可能是我忘了更新web.xml導致的,由於web.xml中的resource-ref資訊沒有更新,因此我的程式找不到連線

	<resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/iron30</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

要更新web.xml,我一般只會透過console來更新,
依以前的經驗,直接覆蓋web.xml常常過一陣子又會被WAS重新蓋回原本舊版本的web.xml,
我們在安裝應用程式時,WAS會把原本的.war檔存在另一個目錄
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/DefaultCell01/applications

war檔的內容會複製到
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/DefaultCell01/server1
這個serve1在執行時讀取的目錄下

如果直接覆蓋web.xml的話,WAS檢測到會再重新拿那個原本的war檔裡的web.xml覆蓋回來,除非我們把原始的war檔也一起換了,否則就沒辦法避免這樣的情況,但這麼做很花時間。

為了省麻煩,乖乖用console來更新反而會比較快一點。
一樣側邊選單[Applications] > [Application Types] >[WebSphere enterprise applications]
勾選應用程式按下update,
https://ithelp.ithome.com.tw/upload/images/20220924/20128973qttfc12LPr.png
選擇Replace or add a single file
輸入要替代的路徑+檔案名Iron30-WAS-Test.war/WEB-INF/web.xml
把要更新的web.xml放上去
https://ithelp.ithome.com.tw/upload/images/20220924/20128973G836qAj1Jt.png
按下next
https://ithelp.ithome.com.tw/upload/images/20220924/20128973xd17DWQZEo.png
按下ok然後save

本以為會解決問題,沒想到程式還是沒辦法取得連線資訊
https://ithelp.ithome.com.tw/upload/images/20220924/20128973O8y0tWoPFb.png

明天再繼續看吧


上一篇
D08/在WebSphere 更新應用程式
下一篇
D10/WebSphere Log & Debug(二)
系列文
30天WebSphere入門及經驗分享36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言